package com.github.natholdallas.common

import org.springframework.core.annotation.AliasFor
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController

@[RestController RequestMapping Retention(AnnotationRetention.RUNTIME) Target(AnnotationTarget.CLASS)]
annotation class ApiViews(
    @get:AliasFor(annotation = RequestMapping::class)
    vararg val value: String = [],
    @get:AliasFor(annotation = RequestMapping::class)
    val name: String = ""
)


@ApiViews
annotation class AViews(
    @get:AliasFor(annotation = RequestMapping::class)
    vararg val value: String = [],
    @get:AliasFor(annotation = RequestMapping::class)
    val name: String = ""
)


@ApiViews
annotation class UViews(
    @get:AliasFor(annotation = RequestMapping::class)
    vararg val value: String = [],
    @get:AliasFor(annotation = RequestMapping::class)
    val name: String = ""
)


@ApiViews
annotation class CViews(
    @get:AliasFor(annotation = RequestMapping::class)
    vararg val value: String = [],
    @get:AliasFor(annotation = RequestMapping::class)
    val name: String = ""
)


@[Controller RequestMapping Retention(AnnotationRetention.RUNTIME) Target(AnnotationTarget.CLASS)]
annotation class Views(
    @get:AliasFor(annotation = RequestMapping::class)
    vararg val value: String = [],
    @get:AliasFor(annotation = RequestMapping::class)
    val name: String = ""
)
